In many industries, from industrial product design to 3D animation, computer-aided design (CAD) applications, computer-aided engineering (CAE) applications, computer-aided manufacturing (CAM) applications, or others are used for creating, manipulating, displaying, or analyzing two- and three-dimensional models of objects. These applications, referred to generally as CAD applications, allow a user to input and view a design for a particular structure in the form of an object. The user can often rotate the view of the object to any angle, and also zoom in or zoom out for different views and perspectives. Additional visual features such as highlighting, shading, cross-hatching, coloring, texturing, and others enable the user to design an object with the aid of a computing device. In some versions of CAD applications, known as parametric or history-based CAD, the application can also keep track of and monitor design changes to the object in addition to design dependencies. Accordingly, when the user adds or changes an element within the object, other values that depend on that change may be automatically updated in accordance with engineering concepts and rules of design. For example, a length of a first object may be defined by a formula that includes, as a variable, a length of a second object. Accordingly, modifying the length of the second object may cause the CAD application to recalculate the length of the first object and regenerate the model.
While in many uses, objects may be simple assemblies of a few basic geometric shapes, in others, objects may include many thousands of complex parts. For example, a detailed CAD model of an automobile may include thousands of unique features of diverse types including tread design on tires, taillight lens design, electrical subsystem routing, instrument panel layout, spark plug gap spacing, seatbelt latch design, and many others. This complexity may result in slow operation of these applications. Furthermore, due to the complexity, these programs typically have very steep learning curves.